home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 2 / Tech Arsenal 2 (Arsenal Computer).iso / casm / ctc0009.txt < prev    next >
Text File  |  1994-05-05  |  56KB  |  827 lines

  1.                        C Set ++ Compiler Version 2.0
  2.                                 Fixes List
  3.                        -----------------------------
  4. *************************************************************************
  5. *                                                                       *
  6. *  This CSD contains fixes that are common to C/C++ Tools Version 2.0   *
  7. *  and Version 2.01.  Notwithstanding the version statements            *
  8. *  contained in the files of this CSD, this is not an upgrade of        *
  9. *  Version 2.0 to Version 2.01.                                         *
  10. *                                                                       *
  11. *  The code to which you have access is determined by the version of    *
  12. *  the software to which you are licensed.                              *
  13. *                                                                       *
  14. *************************************************************************
  15. =========================================================================
  16.                CTC0009 is informal Corrective Service
  17. **************************************************************************
  18. FIX/APAR    COMPONENT     PROBLEM_DESCRIPTION
  19. --------------------------------------------------------------------------
  20. PJ13703     CFE           Defining the first token in a program as
  21.                           a character string with the /D option
  22.                           causes an internal compiler error
  23. --------------------------------------------------------------------------
  24. QUAL-IMP    CFE           Label not found message does not
  25.                           indicate which label is not found.
  26. --------------------------------------------------------------------------
  27. QUAL-IMP    CFE           Internal compiler error while generating
  28.                           /Wenu messages for program with 'case'
  29.                           statement outside 'switch' scope.
  30. --------------------------------------------------------------------------
  31. PJ13705     BE            Fixed a parameter passing problem that
  32.                           occurs when the last statement of a
  33.                           function is to a _Pascal function.
  34. --------------------------------------------------------------------------
  35. QUAL-IMP    BE            Allow the optimizer to assign registers
  36.                           a little more efficiently in certain
  37.                           circumstances.
  38. --------------------------------------------------------------------------
  39. PJ13706     BE            A loop that contains a goto to a return
  40.                           could, in rare cases, cause incorrect
  41.                           code generation.
  42. --------------------------------------------------------------------------
  43. PJ12329     CRT           A 16-bit function will get a protection
  44.                           exception if the function has a large
  45.                           automatic storage area.  This problem
  46.                           occurs on secondary threads, and happens
  47.                           because the stack is not committed when
  48.                           the thread begins execution and the
  49.                           16-bit code does not have stack probes.
  50.                           The compiler runtime code that sets up
  51.                           the 16bit stack needs to commit it.
  52. --------------------------------------------------------------------------
  53. PJ13704     CRT           Compiling 16-32 callback funtions with
  54.                           static link results in duplicate references
  55.                           when linking.
  56.                           Reference APAR PJ12507
  57. --------------------------------------------------------------------------
  58. QUAL-IMP    CRT           Now checking if a destructor exists
  59.                           during error recovery in __vec__copy().
  60.                           May have caused traps
  61. =========================================================================
  62.                CTC0008 is informal Corrective Service
  63. The following fixes are provided in Compiler CS CTC0008
  64. *************************************************************************
  65. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  66. -------------------------------------------------------------------------
  67. PJ12307          BE         Cannot access local variables of callback
  68.                             functions within the Debugger.
  69. -------------------------------------------------------------------------
  70.  PJ12325         BE         Incorrect code may be generated for a
  71.                             conditional increment or decrement if the
  72.                             comparison is signed.
  73. -------------------------------------------------------------------------
  74.  PJ12340         BE         The conversion of an address to a segmented
  75.                             address may be incorrectly done if the
  76.                             address involves an index calculation
  77.                             (ie: &array{i-1})
  78. -------------------------------------------------------------------------
  79.  PJ12341         BE         A register used by strncat() could be
  80.                             clobbered under rare circumstances and
  81.                             cause incorrect behaviour.
  82. -------------------------------------------------------------------------
  83.  PJ12376         BE         Fixed an internal problem with the handling
  84.                             of conditional increments with side effects.
  85. -------------------------------------------------------------------------
  86.  PJ12431         BE         Incorrect register selection could cause
  87.                             incorrect results when performing a bitwise
  88.                             AND (&) with a constant.
  89. -------------------------------------------------------------------------
  90.  PJ12507       BE & CRT     Compiling 16 to 32 callback functions with
  91.                             /Gh+ causes a run-time trap.
  92. -------------------------------------------------------------------------
  93.  QUAL-IMP        BE         Incorrect register selection could lead to
  94.                             traps or unexpected results with 32 to 16 to
  95.                             16 to 32 code.
  96. -------------------------------------------------------------------------
  97.  QUAL-IMP        BE         Fixed a problem similarto PJ11975 for
  98.                             conditional decrements.
  99. -------------------------------------------------------------------------
  100.  PJ12567         CRT        Exception handler was not deregistered within
  101.                             heap_check when using /TM+
  102. -------------------------------------------------------------------------
  103.  PJ12326         CFE        If listing is enabled (/Ls, /Li, or /Lj) and
  104.                             the source code contains nested #if, #elif
  105.                             and #ifdef, the compiler might fail with
  106.                             unexpected compiler error.
  107. -------------------------------------------------------------------------
  108.  PJ12327     CFE & C++FE    After compiling programs with preload turned
  109.                             on, sometimes the front-end traps after the
  110.                             compilation is completed.
  111. -------------------------------------------------------------------------
  112.  PJ12477         CFE        The compiler was not checking against
  113.                             possible errors reading the source and
  114.                             header files.
  115. -------------------------------------------------------------------------
  116.  PJ12490         CFE        ICC will be changed to ignore /Si+ option
  117.                             when /Fb+ option is specified.
  118. -------------------------------------------------------------------------
  119.  QUAL-IMP        CFE        Pre-load program was not checking the return
  120.                             codes from some API calls.
  121. -------------------------------------------------------------------------
  122.  QUAL-IMP        CFE        If the compiler is first invoked from a
  123.                             directory with preload option enabled, while
  124.                             the compiler stays loaded, the user is
  125.                             prevented from removing the directory.
  126.                             This is inconvenient for the user.
  127. -------------------------------------------------------------------------
  128.  QUAL-IMP        CFE        Compiling program with function calls with
  129.                             very large number of arguments causes
  130.                             compiler to trap.
  131. -------------------------------------------------------------------------
  132.  PJ12378         C++FE      If a class is _Exported, then a member
  133.                             function is subsequently defined to be
  134.                             "inline", the compiler still tells the linker
  135.                             to export the function.  This causes an
  136.                             "undefined external" linker error.
  137. -------------------------------------------------------------------------
  138.  PJ12388         C++FE      A C++ program compiled with optimization
  139.                             will cause the front-end to trap if a "const
  140.                             int" static class data member is referenced
  141.                             with explicit class qualification.
  142. -------------------------------------------------------------------------
  143.  PJ12427         C++FE      Erroneous conversion error between typedefs,
  144.                             friend functions and the use of the friend
  145.                             function.
  146. -------------------------------------------------------------------------
  147.  PJ12445         C++FE      Compiler trap processing declaration of const
  148.                             var symbol previously used without being
  149.                             declared.
  150. -------------------------------------------------------------------------
  151.  PJ12479         C++FE      Preprocessor trap when processing a macro
  152.                             defined to NULL
  153. -------------------------------------------------------------------------
  154.  PJ12492         C++FE      When one anonymous union is nested inside
  155.                             another in a C++ program, incorrect addresses
  156.                             are generated for the union members.
  157. -------------------------------------------------------------------------
  158.  QUAL-IMP        C++FE      Fixed #pragma page() and #pragma skip() so
  159.                             that a listing file will not be generated if
  160.                             the listing option is not activated on the
  161.                             command line.
  162. -------------------------------------------------------------------------
  163.  QUAL-IMP        C++FE      If the argument list of a macro is supplied
  164.                             via another macro, the macro might not be
  165.                             expanded as expected.
  166.                             Note: Corresponding CFE fix was implemented
  167.                                   in CTC0006 as PJ11929
  168. -------------------------------------------------------------------------
  169.  QUAL-IMP        C++FE      Wrapper <demangle.h> with #pragma pack
  170. -------------------------------------------------------------------------
  171.  PJ12328         UTIL       When a new C Set++ project (ie. no compiler
  172.                             options have been set), is invoked under the
  173.                             build action on the WorkFrame, the compiler
  174.                             DLL will return the default action.  The
  175.                             default action is not to generate any .W
  176.                             files.
  177. -------------------------------------------------------------------------
  178.  PJ12522         UTIL       Munch was giving the error "assert
  179.                             <line_number> invalid object record." This
  180.                             error was incorrectly being produced for
  181.                             valid object record formats.
  182. =========================================================================
  183.                CTC0007 is informal Corrective Service
  184. The following fixes are provided in Compiler CS CTC0007 and later CS
  185. *************************************************************************
  186. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  187. -------------------------------------------------------------------------
  188.  PJ11951       BE & CFE     The optimizer misses a chance to inline
  189.                             certain C++ functions.
  190. -------------------------------------------------------------------------
  191.  PJ11979         CFE        In source code:
  192.                             int main (void) {
  193.                                 int a, b; b = 1; a = 2; return 0;
  194.                             }
  195.                             The symbols for a and b are generated in a
  196.                             different order depending on whether /Ti is
  197.                             on.  They should be generated in the same
  198.                             way no matter what the /Ti setting is.
  199. -------------------------------------------------------------------------
  200.  QUAL-IMP        CFE        When /La compiler option is used, some of the
  201.                             structures and unions are incorrectly shown
  202.                             in the listing
  203. -------------------------------------------------------------------------
  204.  PJ12108         CRT        Library fixes made to solve problems when
  205.                             debug allocated objects were freed with
  206.                             non-debug routines and vice-versa.
  207.                             In addition the environment variable
  208.                             DDE4_HEAP_SKIP was added whereby the user can
  209.                             skip the _heap_check that occur when debug
  210.                             routines are invoked. The syntax is as
  211.                             follows:
  212.  
  213.                             set DDE4_HEAP_SKIP=increment,starting
  214.  
  215.                             where: 'increment' is how often a
  216.                             heap_check will be invoked, and 'starting'
  217.                             (which is optional) is how many calls to
  218.                             debug memory routines must occur before
  219.                             heap_checks are done.
  220.  
  221.                             Example: DDE4_HEAP_SKIP=100,1000
  222.                             will perform a heap_check after 1000 debug
  223.                             memory routines have been called and on every
  224.                             100 calls after that.
  225.  
  226.                             Example: DDE4_HEAP_SKIP=50
  227.                             will perform a heap_check on every 50 calls
  228.                             made to a debug memory routine
  229.  
  230.                             Note: If DDE4_HEAP_SKIP is not set in the
  231.                             environment then the default will be to
  232.                             invoke heap_check on every call to a debug
  233.                             memory routine.
  234. =========================================================================
  235.                CTC0006 is informal Corrective Service
  236. The following fixes are provided in Compiler CS CTC0006 and later CS
  237. *************************************************************************
  238. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  239. -------------------------------------------------------------------------
  240.  PJ11896         BE         Optimization Problem: A for loop that
  241.                             functions like a memcpy() could be
  242.                             incorrectly optimized if the source of the
  243.                             copy is a struct member.
  244. -------------------------------------------------------------------------
  245.  PJ11952         BE         Optimization Problem: An internal problem
  246.                             with expression simplification could result
  247.                             in incorrect code generation.
  248. -------------------------------------------------------------------------
  249.  PJ11953         BE         Optimization Problem: Within an inner switch
  250.                             of nested switches, a goto jumping to a break
  251.                             for the outer switch could be turned into a
  252.                             break for the inner switch.
  253. -------------------------------------------------------------------------
  254.  PJ11975         BE         Optimization Problem: Statements of the form:
  255.                             "if (f1 < f2) i++", where f1 and f1 have
  256.                             floating-point datatypes, could cause a
  257.                             compile-time exception in the BE.
  258. -------------------------------------------------------------------------
  259.  QUAL-IMP        BE         Optimization Problem: MOD operations could
  260.                             generate results of the wrong sign if both
  261.                             operands are negative.  Similar results could
  262.                             occur for MOD and DIV by a negative power of
  263.                             2.
  264. -------------------------------------------------------------------------
  265.  QUAL-IMP        BE         Fixed a small problem with the generated
  266.                             assembler listing file - an incorrect symbol
  267.                             could be used.
  268. -------------------------------------------------------------------------
  269.  PJ11872         C++FE      Fixed a trap in the C++ frontend.  The trap
  270.                             occurred when we tried to compile a source
  271.                             file that contained a class that had 2
  272.                             declarations of the same friend function and
  273.                             a typedef for that function.
  274. -------------------------------------------------------------------------
  275.  PJ11887         C++FE      Fixed a trap when compiling code with a
  276.                             definition of a function with _Far16 _Pascal
  277.                             linkage.
  278. -------------------------------------------------------------------------
  279.  PJ11981         C++FE      If a conversion function yields a reference
  280.                             to a class with constructors, and a temporary
  281.                             is built from the result of that conversion,
  282.                             the temporary is initialized by bitwise
  283.                             copying instead of by calling its copy
  284.                             constructor.
  285. -------------------------------------------------------------------------
  286.  PJ11982         C++FE      The compiler will deliberately not inline
  287.                             some functions if doing so would break C++
  288.                             exception handling.  However, when exception
  289.                             handling is disabled by /Gx+, the compiler
  290.                             still fails to inline those functions.
  291. -------------------------------------------------------------------------
  292.  PJ11983         C++FE      A complex expression containing more than one
  293.                             conditional subexpression (i.e. the  x ? y :
  294.                             z construct) may be generated such that the
  295.                             subexpressions are evaluated in the wrong
  296.                             order.
  297. -------------------------------------------------------------------------
  298.  PJ11984         C++FE      An inline function consisting of a single
  299.                             return statement that returns a
  300.                             type-converted parameter may be incorrectly
  301.                             inlined.
  302. -------------------------------------------------------------------------
  303.  PJ11881         CFE        Sizeof typedef within sizeof sometimes
  304.                             returns arbitrary value.
  305. -------------------------------------------------------------------------
  306.  PJ11929         CFE        If the argument list of a macro is supplied
  307.                             via another macro, the macro might not be
  308.                             expanded as expected.
  309. -------------------------------------------------------------------------
  310.  PJ11889         CRT        If the function that executes when a thread
  311.                             begins execution calls 16-bit code, then
  312.                             EDCThunkProlog is called from within the
  313.                             function prolog.  EDCThunkProlog tries to
  314.                             access data that is outside the stack frame,
  315.                             and since this is the first frame on the
  316.                             stack, that storage is not allocated to the
  317.                             stack.  A protection exception occurs.
  318. =========================================================================
  319.                CTC0005 is informal Corrective Service
  320. The following fixes are provided in Compiler CS CTC0005 and later CS
  321. *************************************************************************
  322. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  323.  ------------------------------------------------------------------------
  324.  PJ11625         BE         Optimization Problem: Compiling source that
  325.                             contains floating-point code could cause a
  326.                             compile-time trap in the backend.
  327.  ------------------------------------------------------------------------
  328.  PJ11688         BE         Optimization Problem: Statements of the form
  329.                             "do { i++; } while (condition); i--;" could
  330.                             be incorrectly optimized.
  331.  ------------------------------------------------------------------------
  332.  PJ11692         BE         Incorrect debug info could be generated for a
  333.                             data member of a class with type "char *
  334.                             const".
  335.  ------------------------------------------------------------------------
  336.  PJ11695         BE         Optimization Problem: Instruction scheduling
  337.                             could clobber the result of constant multiply
  338.                             across a call.
  339.  ------------------------------------------------------------------------
  340.  PJ11696         BE         Optimization Problem: Using an int variable
  341.                             as an array of chars within a loop could
  342.                             result in incorrect code generation.
  343.  ------------------------------------------------------------------------
  344.  PJ11697         BE         Optimization Problem: Statements of the form
  345.                             "while (cond) { if (--i) { i++; break; } }"
  346.                             could be incorrectly optimized.
  347.  ------------------------------------------------------------------------
  348.  PJ11698         BE         Optimization Problem: If the "count" paramter
  349.                             of strncat() is a builtin string function,
  350.                             incorrect code could be generated.
  351.  ------------------------------------------------------------------------
  352.  PJ11699         BE         Optimization Problem: Tail calling a _Pascal
  353.                             function from another function could result
  354.                             in an exception at run-time.
  355.  ------------------------------------------------------------------------
  356.  PJ11701         BE         strncat() could copy one byte even if "count"
  357.                             parameter is a variable of value 0.
  358.  ------------------------------------------------------------------------
  359.  QUAL-IMP        BE         Optimization Problem: Adding two negative
  360.                             numbers and then negating the result could be
  361.                             optimized incorrectly.
  362.  ------------------------------------------------------------------------
  363.  QUAL-IMP        BE         Without optimization, an expression of the
  364.                             form "*((char*)&array[index]+i)" could
  365.                             generate an incorrect OBJ even though the
  366.                             ASM is correct.
  367.  ------------------------------------------------------------------------
  368.  PJ11491         C++FE      new() is not returning a valid pointer when
  369.                             allocating a 0-sized array.
  370.  ------------------------------------------------------------------------
  371.  PJ11492         C++FE      The delete() operator for an object was not
  372.                             being called with the debug parameters when
  373.                             that object was being deleted because its
  374.                             constructor threw an exception.
  375.  ------------------------------------------------------------------------
  376.  PJ11574         C++FE      Reduce the long link times and large swapper
  377.                             file created when linking C++ programs that
  378.                             contain templates.
  379.  ------------------------------------------------------------------------
  380.  PJ11575         C++FE      If a virtual base class appears more than
  381.                             once in the class hierarchy, then one copy of
  382.                             if may be initialized several times and the
  383.                             other copies not initialized.
  384.  ------------------------------------------------------------------------
  385.  PJ11584         C++FE      The compiler may crash when generating debug
  386.                             information for a class that has no
  387.                             user-supplied nor compiler-generated inline
  388.                             functions.  This is rare, since there are
  389.                             usually some compiler-generated ones.
  390.  ------------------------------------------------------------------------
  391.  PJ11585         C++FE      If a C++ compilation includes definitions of
  392.                             classes that contain virtual functions, all
  393.                             of which are inline functions, the compiler
  394.                             will generate those classes and functions
  395.                             whether or not they are actually used.  This
  396.                             fix generates them only when necessary
  397.  ------------------------------------------------------------------------
  398.  QUAL-IMP        C++FE      A C++ program containing a brace-enclosed
  399.                             statement block outside of a function body
  400.                             crashes the front-end when compiled with
  401.                             /Wuse+ if there is an unused label define
  402.                             in the block
  403.  ------------------------------------------------------------------------
  404.  QUAL-IMP        C++FE      A goto within a catch block is incorrectly
  405.                             diagnosed as a jump into the catch block,
  406.                             which is illegal since it bypasses
  407.                             initialization of the catch variable
  408.  ------------------------------------------------------------------------
  409.  QUAL-IMP        C++RT      Fixed memory leak that occurred when memory
  410.                             is allocated for an object however, it is not
  411.                             constructed because it's constructor threw an
  412.                             exception.
  413.  ------------------------------------------------------------------------
  414.  PJ11702         CFE        The compiler is not recognizing a constant
  415.                             expression properly when initialization
  416.                             involves an array within a structure within
  417.                             an array of structures
  418.  ------------------------------------------------------------------------
  419.  PJ11703         CFE        Using CSD 1 of C Set ++, the test case is
  420.                             expected to have a warning message, but the
  421.                             compiler should not be trapping.
  422.  ------------------------------------------------------------------------
  423.  PJ11686         CRT        The problem lies in reading across memory
  424.                             blocks.  The code did not take into account
  425.                             of the number of characters read in from the
  426.                             previous blocks and hence reading more than
  427.                             necessary.
  428.  ------------------------------------------------------------------------
  429.  PJ11687         CRT        AL register will now be set by the library
  430.                             when making a call to DosGetMessage.
  431. =========================================================================
  432.                CTC0004 is informal Corrective Service
  433. The following fixes are provided in Compiler CS CTC0004 and later CS
  434. *************************************************************************
  435. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  436.  ------------------------------------------------------------------------
  437.  PJ11127         BE         Optimization Problem: Multiplying a variable
  438.                             by a constant and the adding or subtracting 1
  439.                             could result in incorrect code generation.
  440.  ------------------------------------------------------------------------
  441.  PJ11128         BE         Optimization Problem: An internal problem
  442.                             could result in traps or unexpected results
  443.                             with 32 to 16 or 16 to 32 code.
  444.  ------------------------------------------------------------------------
  445.  PJ11129         BE         Optimization Problem: In rare circumstances,
  446.                             doing arithmetic with shorts could result in
  447.                             traps or unexpected results.
  448.  ------------------------------------------------------------------------
  449.  PJ11134         BE         Optimization Problem: The result of a right
  450.                             shift of a negative value, though
  451.                             implementation defined, could differ at /O-
  452.                             and /O+.
  453.  ------------------------------------------------------------------------
  454.  PJ11135         BE         Optimization Problem: The backend could abort
  455.                             with fatal error EDC4005 in intermediate file
  456.                             ROOPT when optimizing an if-then-else.
  457.  ------------------------------------------------------------------------
  458.  PJ11137         BE         Optimization Problem: Expressions of the
  459.                             form: "*(float *) &var", where var is an int,
  460.                             could cause a compile-time back-end trap.
  461.  ------------------------------------------------------------------------
  462.  PJ11138         BE         Optimization Problem: An internal problem
  463.                             occuring when compiling floating-point code
  464.                             could cause a compile-time back-end trap.
  465.  ------------------------------------------------------------------------
  466.  PJ11139         BE         Incorrect code could be generated when
  467.                             negating a char variable and then storing the
  468.                             result into an int variable.
  469.  ------------------------------------------------------------------------
  470.  PJ11140         BE         Optimization Problem: Statements of the form:
  471.                             "x--; if (cond) x += 2;" may be incorrectly
  472.                             optimized.
  473.  ------------------------------------------------------------------------
  474.  PJ11141         BE         Run-time traps could occur in code using 16
  475.                             to 32 callback functions if the code crossed
  476.                             a 64K boundary.
  477.  ------------------------------------------------------------------------
  478.  PJ11142         BE         When using strncat(), an extra NULL was being
  479.                             appended to the end of the destination string
  480.                             if the length of the source string was less
  481.                             than "n".
  482.  ------------------------------------------------------------------------
  483.  PJ11143         BE         Optimization Problem: Statements of the form:
  484.                             "if (!x) {y = 0;} else {y = 1;}" could cause
  485.                             a compile-time trap if x is a float-point
  486.                             type.
  487.  ------------------------------------------------------------------------
  488.  QUAL-IMP        BE         Under certain conditions, the optimizer could
  489.                             leave around some useless LEA instructions.
  490.                             This has now been fixed.
  491.  ------------------------------------------------------------------------
  492.  QUAL-IMP        BE         When exporting callback functions, an
  493.                             incorrect symbol could be used, resulting in
  494.                             link errors.
  495.  ------------------------------------------------------------------------
  496.  PJ11176         CFE        Compiler generates incorrect code for
  497.                             referencing array of array in structure
  498.                             with array index of 0.
  499.                             ie:  a.b[i][0].c = 1;  a.b[i]->c = 2;
  500.  ------------------------------------------------------------------------
  501.  PJ11177         CFE        If a variable is first declared and then
  502.                             initialized both with a typedef type and
  503.                             a qualifier, the compiler generates incorrect
  504.                             code.
  505.                             ie:  const typedef_name var;
  506.                                  const typedef_name var = 0;
  507.  ------------------------------------------------------------------------
  508.  PJ11179         CFE        When initializing a member of a structure
  509.                             casting the member to _Seg16 pointer causes
  510.                             unexpected compiler error.
  511.  ------------------------------------------------------------------------
  512.  PJ11180         CFE        When #pragma handler is specified for some
  513.                             functions, the compiler randomly generates
  514.                             incorrect code that exports some of those
  515.                             functions.
  516.  ------------------------------------------------------------------------
  517.  PJ11181         C++FE      The following message is produced when both
  518.                             sides of a conditional expression are the
  519.                             same:
  520.                             recoverable EDC4005: Error occured in
  521.                                         intermediate file RBEXPR(4902)
  522.  ------------------------------------------------------------------------
  523.  PJ11182         C++FE      An initialized function-scope static variable
  524.                             will cause the C++ front end to GPF if a
  525.                             compiler temporary is required when
  526.                             evaluating the initializing expression.
  527.  ------------------------------------------------------------------------
  528.  PJ11183         CRT        FILE struct members violate user name space.
  529.  ------------------------------------------------------------------------
  530.  PJ11185         CRT        MATHERR not handling domain errors.
  531. =========================================================================
  532.                CTC0003 is informal Corrective Service
  533. The following fixes are provided in Compiler CS CTC0003 and later CS
  534. *************************************************************************
  535. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  536.  ------------------------------------------------------------------------
  537.  PJ10704         BE         Incorrect debug information could cause IPMD
  538.                             to trap in DDE4BE32.DLL while debugging C++
  539.                             programs.
  540.  ------------------------------------------------------------------------
  541.  PJ10705         BE         Incorrect debug information for const member
  542.                             functions could cause expression evaluation
  543.                             problems in IPMD.
  544.  ------------------------------------------------------------------------
  545.  PJ10706         BE         Incorrect debug information could cause IPMD
  546.                             to hang when debugging large programs.
  547.  ------------------------------------------------------------------------
  548.  QUAL-IMP        BE         Incorrect debug information could confuse
  549.                             IPMD while debugging C++ programs.
  550.  ------------------------------------------------------------------------
  551.  PJ10461         CRT        Serialization code used in the runtime
  552.                             library may cause system traps. This
  553.                             usually occurs when one of the thread
  554.                             unexpectedly terminates.
  555.  ------------------------------------------------------------------------
  556.  PJ10703         C++RTL     CPPFILT utility truncates the mangled
  557.                             function names if it is greater than 233
  558.                             characters.
  559. =========================================================================
  560.                CTC0002 is formal Corrective Service
  561. The following fixes are provided in Compiler CS CTC0002 and later CS
  562. *************************************************************************
  563. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  564.  ------------------------------------------------------------------------
  565.  PJ10544          BE        Optimization Problem: Compiling with /G5 /Ms
  566.                             may optimize SUB ESP,4 into PUSH EAX at
  567.                             inappropriate places.
  568.  ------------------------------------------------------------------------
  569.  PJ10545          BE        Incorrect code may be generated when copying
  570.                             structures whose size is less than 12 bytes.
  571.  ------------------------------------------------------------------------
  572.  PJ10546          BE        Optimization Problem: An internal problem
  573.                             during common subexpression elimination could
  574.                             cause a compile-time exception.
  575.  ------------------------------------------------------------------------
  576.  PJ10547          BE        Optimization Problem: Incorrect code
  577.                             generation may result when optimizing a loop
  578.                             that contains a goto which acts like a break.
  579.  ------------------------------------------------------------------------
  580.  PJ10549          BE        Optimization Problem: Instruction scheduling
  581.                             may move instructions out of the protected
  582.                             area between _disable and _enable.
  583.  ------------------------------------------------------------------------
  584.  PJ10550          BE        Optimization Problem: Returning a floating
  585.                             point value as an integer may cause problems
  586.                             on machines without FP co-processors when
  587.                             compiled with /O and either /G4 or /G5.
  588.  ------------------------------------------------------------------------
  589.  PJ10552          BE        The enum data offset field of a COMDAT placed
  590.                             in a user segment was being set to a non-zero
  591.                             value.
  592.  ------------------------------------------------------------------------
  593.  PJ10553          BE        Optimization Problem: An internal problem
  594.                             could cause a compile-time trap when
  595.                             compiling with /O+ /Gf+.
  596.  ------------------------------------------------------------------------
  597.  PJ10556          BE        The BE was not growing the number of file
  598.                             handles available.  This caused a
  599.                             compile-time exception when the BE ran out of
  600.                             file handles.
  601.  ------------------------------------------------------------------------
  602.  PJ10557          BE        Optimization Problem: Calling a 32-bit
  603.                             function from the last statement of a _Far16
  604.                             _Pascal function could be compiled
  605.                             incorrectly.
  606.  ------------------------------------------------------------------------
  607.  PJ10558          BE        Optimization Problem: The incorrect register
  608.                             may be cleared when returning 0.
  609.  ------------------------------------------------------------------------
  610.  PJ10559          BE        A constant left-shifted by another constant
  611.                             may be folded incorrectly when compiled with
  612.                             /Gi.
  613.  ------------------------------------------------------------------------
  614.  PJ10560          BE        Optimization Problem: Tail call optimization
  615.                             was being incorrectly applied to a call to a
  616.                             pascal linkage function from a system linkage
  617.                             function.
  618.  ------------------------------------------------------------------------
  619.  QUAL-IMP         BE        Optimization Problem: Bad register selection
  620.                             around switch statements could cause
  621.                             incorrect code generation.
  622.  ------------------------------------------------------------------------
  623.  QUAL-IMP         BE        With C++, returning a complex structure from
  624.                             a function whose destructor has been inlined
  625.                             could be compiled incorrectly.
  626.  ------------------------------------------------------------------------
  627.  QUAL-IMP         BE        An internal problem could cause a
  628.                             compile-time trap when compiling, with /Gr
  629.                             /Rn, a _Far32 _Pascal function that returns a
  630.                             pointer.
  631.  ------------------------------------------------------------------------
  632.  PJ10478         CFE        The preprocessor was getting an internal
  633.                             compiler error for certain macro expansion.
  634.  ------------------------------------------------------------------------
  635.  PJ10477         CFE        If a source/header file contains null
  636.                             characters, the compiler gets an internal
  637.                             compiler error and may result in a huge
  638.                             swapper that may bring down your system.
  639.  ------------------------------------------------------------------------
  640.  QUAL-IMP        CFE        Error message was being erroneously issued
  641.                             when '_Export" keyword or '#pragma export'
  642.                             are specified more than once for the same
  643.                             object.
  644.  ------------------------------------------------------------------------
  645.  PJ10566       C++FE        Conversion function results in an
  646.                             unconstructed temporary. No constructor was
  647.                             called for the temporary object.
  648.  ------------------------------------------------------------------------
  649.  PJ10567       C++FE        When passing a class as a by value parameter
  650.                             a temporary is not used and the class is
  651.                             passed by reference.
  652.  ------------------------------------------------------------------------
  653.  PJ10568       C++FE        Member friend incorrectly inherits function
  654.                             linkage from linkage specifier.
  655.  ------------------------------------------------------------------------
  656.  PJ10569       C++FE        Invalid Error message EDC3458 produced.
  657.  ------------------------------------------------------------------------
  658.  PJ10570       C++FE        GPF calling virtual member function of a
  659.                             template class when the module uses #pragma
  660.                             data_seg.
  661.  ------------------------------------------------------------------------
  662.  PJ10571       C++FE        Invalid error for postfix operator ++ on a
  663.                             reference in a conditional expression.
  664.  ------------------------------------------------------------------------
  665.  PJ10572       C++FE        Invalid error message EDC3276 and GPF when
  666.                             compiling a conditional expression.
  667.  ------------------------------------------------------------------------
  668.  QUAL-IMP      C++FE        Runtime GPF accessing static data member
  669.                             at location 0.
  670.  ------------------------------------------------------------------------
  671.  QUAL-IMP      C++FE        /Ms causes a runtime GPF when exception
  672.                             handling is used.
  673.  ------------------------------------------------------------------------
  674.  PJ10462         CRT        Thunk Prologue incorrectly probes stack
  675.                             causing system traps. This may occur
  676.                             with any 32-16 calls not in thread one.
  677.  ------------------------------------------------------------------------
  678.  QUAL-IMP        CRT        Free not handling debug object. An debug
  679.                             memory object (as allocated by the debug
  680.                             memory routine) can cause system trap
  681.                             after it is passed to the regular free()
  682.                             function for freeing.
  683.  ------------------------------------------------------------------------
  684.  QUAL-IMP        CRT        Spawn/Exec family functions should ignore
  685.                             net error. If the net error is not ignored,
  686.                             the search on the PATH stops prematurely,
  687.                             which may cause spawns/exec functions not to
  688.                             find any program whose path appears
  689.                             after the net work path causing the error.
  690.  ------------------------------------------------------------------------
  691.  QUAL-IMP       UTIL        Compiler dialog did not parse a file when the
  692.                             file contains a '//' comment.  It ignored
  693.                             lines after the '//' character until a blank
  694.                             line is reached.
  695.  ------------------------------------------------------------------------
  696.  QUAL-IMP       UTIL        Dialog did not free up memory when saving
  697.                             or retrieving information to/from the project
  698.                             file extended attribute.
  699. =========================================================================
  700.                CTC0001 is informal Corrective Service
  701. The following fixes are provided in Compiler CS CTC0001 and later CS
  702. *************************************************************************
  703. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  704.  ------------------------------------------------------------------------
  705.  PJ09575        DOC         Hitting Ctrl H in EPM for contextual help
  706.                             did not work for printf or scanf.  A change
  707.                             was made in the DDE4CLIB.NDX file..
  708.  ------------------------------------------------------------------------
  709.  QUAL-IMP       ICC         When /Fa compilation switch was used to
  710.                             create assembler file, and a template file
  711.                             was compiled, the compiler trapped.
  712.  ------------------------------------------------------------------------
  713.  QUAL-IMP       ICC         Added the description of /Tm option to ICC
  714.                             help.
  715.  ------------------------------------------------------------------------
  716.  PJ09573        FE          Fixed the compiler to disallow illegal
  717.                             initialization of two-dimensional array
  718.                             of char with character string without braces.
  719.  ------------------------------------------------------------------------
  720.  PJ09574        FE          Structure initialization failed with an
  721.                             extra set of braces.
  722.  ------------------------------------------------------------------------
  723.  QUAL-IMP       FE          Usage of _Export keyword caused the compiler
  724.                             to fail.
  725.  ------------------------------------------------------------------------
  726.  QUAL-IMP      UTIL         Beta project causes Workframe to trap.
  727.  ------------------------------------------------------------------------
  728.  QUAL-IMP      UTIL         Update English panels to fix a Japanese
  729.                             VGA screen.
  730.  ------------------------------------------------------------------------
  731.  QUAL-IMP      UTIL         Remove the minimize capability of the
  732.                             notebook dialog.
  733.  ------------------------------------------------------------------------
  734.  QUAL-IMP      UTIL         No keyboard focus when the notebook dialog
  735.                             first appears.
  736.  ------------------------------------------------------------------------
  737.  QUAL-IMP      UTIL         Incorrect focus when Alt key is pressed
  738.                             inside a dialog.
  739.  ------------------------------------------------------------------------
  740.  QUAL-IMP      UTIL         /Xc should not generate any command line
  741.                             include paths.
  742.  ------------------------------------------------------------------------
  743.  QUAL-IMP      C++FE        The /Ms option is changing the linkage of
  744.                             internally declared compiler functions.
  745.                             This can result in runtime traps when using
  746.                             memory management or C++ exception handling.
  747.  ------------------------------------------------------------------------
  748.  QUAL-IMP      C++FE        The linker fails when using /ND to rename
  749.                             a data segment.  The compiler is generating
  750.                             bad code for partially initialized
  751.                             structures.
  752.  ------------------------------------------------------------------------
  753.  QUAL-IMP      C++FE        Using the compiler options /La or /Lb causes
  754.                             the compiler to trap.
  755.  ------------------------------------------------------------------------
  756.  PJ09576       C++FE        Linking a program that contains templates
  757.                             causes an invalid error to be generated by
  758.                             lib.exe.  The error is "LIB0007: Error :
  759.                             Unable to open D:\00900000.6.OBJ"
  760.  ------------------------------------------------------------------------
  761.  PJ09577       C++FE        Large program with many template functions,
  762.                             (more than 1023), traps at runtime.
  763.  ------------------------------------------------------------------------
  764.  PJ09578       C++FE        When linking programs that contain templates
  765.                             and object files that were generated by TASM
  766.                             the message: "Unknown Record Type {ox..},
  767.                             offset {..} is generated.
  768.  ------------------------------------------------------------------------
  769.  PJ09579       C++FE        The compiler is incorrectly resolving to a
  770.                             function template instead of using a
  771.                             previously declared member function.
  772.  ------------------------------------------------------------------------
  773.  PJ09580       C++FE        Object destructors are not always run after
  774.                             a throw statement.
  775.  ------------------------------------------------------------------------
  776.  PJ09581       C++FE        Compiling code that uses _Far16 and _Pascal
  777.                             keywords causes an internal compiler error:
  778.                             "Exception #C0000005: 30751 occurred in
  779.                             file .., function .."
  780.  ------------------------------------------------------------------------
  781.  QUAL-IMP      C++RT        Incorrectly handling exceptions in multiple
  782.                             runtime environments.
  783.  ------------------------------------------------------------------------
  784.  PJ09568         BE         Compiling source files with the same names
  785.                             may result in conflicting BSS static areas.
  786.  ------------------------------------------------------------------------
  787.  PJ09570         BE         Optimization Problem: Incorrect code could be
  788.                             generated when the result of a comparison is
  789.                             subtracted from a variable.
  790.  ------------------------------------------------------------------------
  791.  PJ09571         BE         The debug info could become corrupted in very
  792.                             large files which results in only assembler
  793.                             view being available within IPMD.
  794.  ------------------------------------------------------------------------
  795.  PJ09572         BE         Optimization Problem: An internal problem
  796.                             during loop optimizations could cause a
  797.                             compile-time exception in the back-end.
  798.  ------------------------------------------------------------------------
  799.  PJ09569         BE         Optimization Problem: Incorrect code could be
  800.                             produced for loops ending with an
  801.                             if-then-else where the last statement of the
  802.                             else is a break.
  803.  ------------------------------------------------------------------------
  804.  QUAL-IMP        BE         Optimization Problem: An internal problem in
  805.                             store removal could cause incorrect code.
  806.  ------------------------------------------------------------------------
  807.  QUAL-IMP        BE         Optimization Problem: An internal problem
  808.                             may cause a compile-time exception in the
  809.                             back-end.
  810.  ------------------------------------------------------------------------
  811.  QUAL-IMP        BE         Incorrect code generation for _Far16 _Pascal
  812.                             functions that return floating-point types
  813.                             could cause a run-time exception.
  814.  ------------------------------------------------------------------------
  815.  QUAL-IMP        BE         Optimization Problem: An internal problem,
  816.                             when compiling with /Ti+, may cause incorrect
  817.                             code generation for breaks within loops.
  818.  ------------------------------------------------------------------------
  819.  QUAL-IMP        BE         Optimization Problem: The optimizer was
  820.                             incorrectly folding (0 / x) and (0 % x).
  821.  ------------------------------------------------------------------------
  822.  QUAL-IMP        BE         Casting a floating-point value to int and
  823.                             then comparing the result to another int that
  824.                             was previously cast from a floating-point
  825.                             value may produce incorrect results.
  826. =========================================================================
  827.